package sculove.spring.framework.web;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import sculove.spring.framework.util.Configuration;
import sculove.spring.zzz.comCd.service.ComCdManager;

/**
 * Application Lifecycle Listener implementation class StartupListener
 * 각종 어플리케이션 모듈 및 자원을 초기화하는 리스너.
 *
 * 이 리스너는 최초의 사용자요청이 접수될 때까지 기다리지 않고
 * 웹어플리케이션이 컨테이너에 배포되어 가동되는 즉시 시스템을
 * 최적의 준비상태로 만들기 위해 사용된다.
 */
public class StartupListener implements ServletContextListener {

	/**
     * @see ServletContextListener#contextInitialized(ServletContextEvent)
     */
    public void contextInitialized(ServletContextEvent arg0) {
    	
    	Log logger = LogFactory.getLog(this.getClass());
    	
    	if(logger.isInfoEnabled()) logger.info("[StartupListener] Start...");
    	if(logger.isInfoEnabled()) logger.info("[StartupListener] init Configuration...");
    	// Configuration 초기화
    	Configuration.getXmlInstance();
    	Configuration.getPropInstance();
    	
    	if(logger.isInfoEnabled()) logger.info("[StartupListener] init ComCdMaster...");    	
    	// 공통 콤보 초기화
    	ComCdManager.refresh();
    }

	/**
     * @see ServletContextListener#contextDestroyed(ServletContextEvent)
     */
    public void contextDestroyed(ServletContextEvent arg0) {
    }
}
